grammar LabeledExpr;  //区分 Expr.g4
import CommonLexerRules;       //导入词法分析规则，自动获取

// 语法起始
prog : stat+ ;

stat : expr NEWLINE             #printExpr   // # 为标签，可以使得生成的vistor方法覆盖更多
      | ID '=' expr NEWLINE     #assign        //表达式 a = 5
      | NEWLINE                 #blank
       ;
expr : expr op=('*' | '/') expr    #MulDiv      //为 操作符 * \ 定义标签
      | expr op=('+' | '-') expr   #AddSub
      | INT                     #int
      | ID                      #id
      | '(' expr ')'           #panens          //符号用 英文格式
      ;

Mul: '*';   //定义词法符号 * 的名称
Div: '/';   //定义词法符号 / 的名称
Add: '+';   //定义词法符号 + 的名称
Sub: '-';   //定义词法符号 - 的名称